package com.yml.mall.category;

import com.yml.mall.category.pojo.CategoryInsertDTO;
import com.yml.mall.category.pojo.CategoryStructureDTO;
import com.yml.mall.vo.ResponseVO;

import java.util.List;

/**
 * @ClassName CategoryService
 * @Author Administrator
 * @Date 2020/4/8   17:20
 */
public interface CategoryService {

    /**
     * 获取完整的目录结构
     * @param root
     * @param current
     */
    void getCategoryStructure(List<CategoryStructureDTO> root, List<CategoryStructureDTO> current);

    /**
     * 获取根目录
     * @return
     */
    ResponseVO<List<CategoryStructureDTO>> getAllRootItem();

    /**
     * 根据parentId 获取子目录
     * @param parentId
     * @return
     */
    ResponseVO<List<CategoryStructureDTO>> getSubItem(Integer parentId);

    /**
     * 添加目录
     * @param categoryStructureDTO
     * @return
     */
    ResponseVO<List<CategoryStructureDTO>> addRootItem(CategoryStructureDTO categoryStructureDTO);

    /**
     *
     * @return
     */
    ResponseVO<List<CategoryStructureDTO>>  CategoryStructureDTO();

    /**
     * 添加类目
     * 如果 parentId ==null 默认为0 及创建根目录
     * 如果不存在则 返回错误
     * @param categoryInsertDTO
     */

    ResponseVO<List<CategoryStructureDTO>> save(CategoryInsertDTO categoryInsertDTO);
}
